package com.mcxx.common;

import com.mcxx.modules.statistics.entity.StatisDataItemEntity;
import com.mcxx.modules.statistics.entity.StatisItemEntity;
import com.mcxx.util.AreaUtil;
import com.mcxx.util.Constant;


public class StatisDataItemEntityBuilder {
    private StatisDataItemEntity statisDataItemEntity;

    public StatisDataItemEntity get(){
        return statisDataItemEntity;
    }

    public StatisDataItemEntityBuilder(){
        statisDataItemEntity = new StatisDataItemEntity();
        statisDataItemEntity.setFamilyCount(0);
        statisDataItemEntity.setCount(0);
        statisDataItemEntity.setCount1(0);
        statisDataItemEntity.setCount2(0);
        statisDataItemEntity.setCount3(0);
        statisDataItemEntity.setCount4(0);
        statisDataItemEntity.setCount5(0);
        statisDataItemEntity.setCount6(0);
        statisDataItemEntity.setCount7(0);
        statisDataItemEntity.setCount8(0);
        statisDataItemEntity.setCount9(0);
        statisDataItemEntity.setSum(0D);
        statisDataItemEntity.setSum1(0D);
        statisDataItemEntity.setSum2(0D);
        statisDataItemEntity.setSum3(0D);
        statisDataItemEntity.setSum4(0D);
        statisDataItemEntity.setSum5(0D);
        statisDataItemEntity.setSum6(0D);
        statisDataItemEntity.setSum7(0D);
    }

    public StatisDataItemEntityBuilder(StatisDataItemEntity entity) {
        statisDataItemEntity = entity;
    }

    public void setStatisItemEntity(StatisDataItemEntity entity){
        statisDataItemEntity = entity;
    }

    public void init(String areaCode, Integer level, String month, String itemSetId){
        statisDataItemEntity.setAreaCode(areaCode);
        statisDataItemEntity.setId(Constant.getUUID());
        statisDataItemEntity.setYears(month);
        statisDataItemEntity.setItemSetId(itemSetId);

        if(null == level){
            statisDataItemEntity.setStreetCode("");
            statisDataItemEntity.setCountyCode("");
            statisDataItemEntity.setCityCode("");
            statisDataItemEntity.setProvinceCode("");
        }
        else{
            AreaUtil areaUtil = new AreaUtil();
            switch (level){
                case Constant.AreaLevel.GROUP:
                case Constant.AreaLevel.COMMUNITY:
                case Constant.AreaLevel.STREET:
                    statisDataItemEntity.setStreetCode(areaUtil.getValidCode(areaCode, Constant.AreaLevel.STREET));
                case Constant.AreaLevel.COUNTY:
                    statisDataItemEntity.setCountyCode(areaUtil.getValidCode(areaCode, Constant.AreaLevel.COUNTY));
                case Constant.AreaLevel.CITY:
                    statisDataItemEntity.setCityCode(areaUtil.getValidCode(areaCode, Constant.AreaLevel.CITY));
                case Constant.AreaLevel.PROVINCE:
                    statisDataItemEntity.setProvinceCode(areaUtil.getValidCode(areaCode, Constant.AreaLevel.PROVINCE));
                    break;
            }
        }
    }

    public void setStatisItem(StatisItemEntity item){
        statisDataItemEntity.setBusinessType(item.getBusinessType());
        statisDataItemEntity.setPovertyType(item.getExceptionalPovertyType());
        statisDataItemEntity.setStatisConfigCode(item.getStatisItemCode());
        statisDataItemEntity.setStatisConfigName(item.getStatisItemName());
        statisDataItemEntity.setStatisConfigId(item.getId());
        statisDataItemEntity.setStatisType(item.getStatisType());
        statisDataItemEntity.setStatisUnit(item.getStatisUnit());
        statisDataItemEntity.setIsStatisPerson(item.getIsCountPerson());
        statisDataItemEntity.setIsStatisFamily(item.getIsCountFamily());
        statisDataItemEntity.setIsSum(item.getIsSum());
        statisDataItemEntity.setIsValue(item.getIsValue());
    }

    public void setData(StatisDataItemEntity entity){
        statisDataItemEntity.setSum(entity.getSum());
        statisDataItemEntity.setSum1(entity.getSum1());
        statisDataItemEntity.setSum2(entity.getSum2());
        statisDataItemEntity.setSum3(entity.getSum3());
        statisDataItemEntity.setSum4(entity.getSum4());
        statisDataItemEntity.setSum5(entity.getSum5());
        statisDataItemEntity.setSum6(entity.getSum6());
        statisDataItemEntity.setSum7(entity.getSum7());
        statisDataItemEntity.setFamilyCount(entity.getFamilyCount());
        statisDataItemEntity.setCount(entity.getCount());
        statisDataItemEntity.setCount1(entity.getCount1());
        statisDataItemEntity.setCount2(entity.getCount2());
        statisDataItemEntity.setCount3(entity.getCount3());
        statisDataItemEntity.setCount4(entity.getCount4());
        statisDataItemEntity.setCount5(entity.getCount5());
        statisDataItemEntity.setCount6(entity.getCount6());
        statisDataItemEntity.setCount7(entity.getCount7());
        statisDataItemEntity.setCount8(entity.getCount8());
        statisDataItemEntity.setCount9(entity.getCount9());
    }
}
